Complete JSON Schema Draft-07 Support#186
Merged
dmarcotte merged 7 commits intokson-org:mainfrom Sep 1, 2025
Merged
Conversation
Introduce `JsonPointerParser` to parse and validate JSON Pointer strings according to RFC 6901. This is in preparation for filling in the $ref handling in our JSON Schema support
Organize our remaining SchemaSuiteTest exclusions around the feature or gap they are related to in order to make it easier to tackle these last few areas piece by piece.
Add $ref support for JSON Pointer references within the same document as a concrete first step towards full $ref support
Added `decodeUriEncoding` to handle percent-encoded characters in `$ref`s, moving us closer to full $ref support
Update `JsonTestSuiteGenerator` to pretty print the JSON schemas in `SchemaSuiteTest` so that the tests are easier to quickly understand
Hopefully we can add some form of this back later, but for now this is not quite correct since these siblings are not totally ignored and may be used for instance in some fancy $ref lookups. Hopefully we can revisit adding some helpful messaging in here once full $ref support is implemented.
This effectively completes our implementation of JSON Schema Draft 7. We now pass all [JSON-Schema-Test-Suite](https://github.com/json-schema-org/JSON-Schema-Test-Suite) tests (verified in our build by `SchemaSuiteTest`), with one nuance: We are not supporting fetching of remote schema resources right now (or ever?), so we ported the JSON-Schema-Test-Suite tests with remotes into [bundled](https://json-schema.org/blog/posts/bundling-json-schema-compound-documents) versions of those test in `JsonSchemaTestBundledRemotes`.
This was referenced Sep 15, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Building on the work in #122, this pull adds full
$ref/$idsupport, and we now pass all JSON-Schema-Test-Suite tests (verified in our build bySchemaSuiteTest), with one nuance:We are not supporting fetching of remote schema resources right now (or ever?), so we ported the JSON-Schema-Test-Suite tests with remotes into bundled versions of those test in
JsonSchemaTestBundledRemotes.